package com.huaxiafinance.management.mapper;

import com.huaxiafinance.management.dto.request.QueryShoppingProDto;
import com.huaxiafinance.management.model.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface MallProductMapper {
    int countByExample(MallProductExample example);

    int deleteByExample(MallProductExample example);


    int deleteByPrimaryKey(Integer id);

    int insert(MallProduct record);

    int insertSelective(MallProduct record);

    List<MallProduct> selectByExample(MallProductExample example);

    MallProduct selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") MallProduct record, @Param("example") MallProductExample example);

    int updateByExample(@Param("record") MallProduct record, @Param("example") MallProductExample example);

    int updateByPrimaryKeySelective(MallProduct record);

    int updateByPrimaryKey(MallProduct record);
    List<Map> selectList(QueryShoppingProDto dto);
    int countList(QueryShoppingProDto dto);
    List<Map> selectType();
    MallProduct queryByCode(@Param("code")String code);
    int insertMzhfSelective(MzhfProductParam pro);
    int insertProImgSelective(MallProductImg img);
    List<Map> selectTag(@Param("category")Integer category);
    int insertSjsmSelective(SjsmProductParam pro);
    int insertSsqsSelective(SsqsProductParam pro);
    int insertJkysSelective(JkysProductParam pro);
    int updateMzfhByPrimaryKeySelective(MzhfProductParam record);
    int updateSsqsByPrimaryKeySelective(SsqsProductParam record);
    int updateSjsmByPrimaryKeySelective(SjsmProductParam record);
    int updateJkysByPrimaryKeySelective(JkysProductParam record);

    String selectProCode();

    /**
     * 通过id查询商品基本信息
     * @param id
     * @return
     */
    MallProduct selectPro(@Param("id") Integer id);
    /**
     * 通过uuid查询美妆护肤商品参数
     */
    MzhfProductParam selectMzhfOne(@Param("uuid")String uuid);

    /**
     * 通过uuid查询手机数码商品参数
     * @param uuid
     * @return
     */
    SjsmProductParam selectSjsmOne(@Param("uuid")String uuid);
    /**
     *通过uuid查询时尚轻奢商品参数
     * @param uuid
     * @return
     */
    SsqsProductParam selectSsqsOne(@Param("uuid")String uuid);
    /**
     *通过uuid查询健康养生商品参数
     * @param uuid
     * @return
     */
    JkysProductParam selectJkysOne(@Param("uuid")String uuid);

    /**
     * 商品sku列表
     * @param uuid 商品uuid
     * @return
     */
    List<ProductSku> selectSkuList(@Param("uuid")String uuid);
    /**
     * 商品介绍图列表
     * @param uuid 商品uuid
     * @return
     */
    List<MallProductImg> selectIntroduceImg(@Param("uuid")String uuid);
    /**
     * 商品图片列表
     * @param uuid 商品uuid
     * @return
     */
    List<MallProductImg> CommodityImg(@Param("uuid")String uuid);

    /**
     * 删除商品的图片信息
     * @param uuid
     * @return
     */
    int deleteImg(@Param("uuid")String uuid);

    /**
     * 根据uuid查出sku的id  list
     * @return
     */
    List<Integer> selectIdOfSku(@Param("uuid")String uuid);

    /**
     * 根据商品code查推荐位
     */
    Integer selectRecByCode(@Param("proCode")String proCode);

    /**
     * 获取全部商品名字
     * @return
     */
    List<String> selectProNameList();
}